package Singleton;


import com.sun.jndi.ldap.Connection;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author: 蔡翔
 * @Date: 2019/12/5 15:29
 * @Version 1.0
 *
 * 基于容器的单例模式
 *
 * 这种方式 非常适合：在程序初始化的时候 把多个单例对象 放到这个singletonMap 里边统一管理 。
 */
public class ContainerSingleton {
    // 私有构造器 是一种保护措施
    private ContainerSingleton(){

    }

    //作为一个缓存对象，要往里面放对象 和 取对象。
    private static Map<String,Object> singletonMap = new HashMap<String,Object>();

    public static void putInstance(String key,Object instance){
        if(StringUtils.isNotBlank(key) && instance != null){
            if(!singletonMap.containsKey(key)){
                singletonMap.put(key,instance);
            }
        }
    }

    public static Object getInstance(String key){
        return singletonMap.get(key);
    }
}
